<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
    <script src="https://cdn.jsdelivr.net/npm/vue@2.6.10/dist/vue.js"></script>
  </head>

  <body>
    <div id="root">
      <!-- v-on可以简写为 @: v-on:click=""==> @click=""-->

      <!-- 如果绑定事件函数的时候没有加小括号,则在事件函数中直接使用第一个形参接受event事件对象 -->
      <button @click="fn1">点我1</button>
      <!-- 一旦在给事件绑定事件函数的时候,添加了括号,事件函数不会直接调用,还是等事件触发的时候才调用 -->
      <!-- 但是此时，我们不能直接在形参中接收event事件对象了 -->
      <!-- 我们需要在绑定事件函数的小括号中，显性传递一个$event实参(在v-on绑定事件的插值语法中，默认是存在一个$event的值，代表当前的event事件对象)，将来在事件函数中接收，接收的这个值就是event事件对象 -->
      <button @click="fn2($event)">点我2</button>
      <!-- 传递多个参数时的情况 -->
      <button @click="fn3($event,2)">点我3</button>
    </div>
    <script>
      Vue.config.productionTip = false; // 阻止 Vue在启动时生成生产提示

      const vm = new Vue({
        el: "#root", // 挂载的容器
        data() {
          // 数据
          return {};
        },
        methods: {
          fn1(e) {console.log(e,'fn1');},
          fn2(e) {console.log(e,'fn2');},
          fn3(e) {console.log(e,'fn3');},
        },
      });
    </script>
  </body>
</html>
